home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / glass / glass.lha / GLASS / dtm / test6.gl < prev    next >
Text File  |  1991-06-18  |  1KB  |  37 lines

  1. Basetype E;
  2.  
  3. Atom
  4.    and5 :- E^5 => E,
  5.    and4 :- E^4 => E,
  6.    and3 :- E^3 => E,
  7.    and2 :- E & E => E,
  8.    nand :- E & E => E,
  9.    nand3 :- E & E & E => E,
  10.    ornot :- E & E => E,
  11.    or :- E & E => E,
  12.    jkff :- E & E => E,
  13.    buf :- E => E;
  14.  
  15. Def
  16.    counter :- E^8 => E^5;
  17.    counter [d3,d2,d1,d0,nload,nclear,enap,enat] = [carry,q3,q2,q1,q0]
  18.       where
  19.          carry = and5 [q3,q2,q1,q0,enat];
  20.          q3 = counterstage [d3, preset, and4 [q2,q1,q0, en], nclr];
  21.          q2 = counterstage [d2, preset, and3 [q1,q0,en], nclr];
  22.          q1 = counterstage [d1, preset, and2 [q0,en], nclr];
  23.          q0 = counterstage [d0, preset, en, nclr];
  24.          preset = ornot [nload, nclr];
  25.          nclr = buf nclear;
  26.          en = and2 [enap,enat];
  27.          Mac
  28.             counterstage :- E^4 => E;
  29.             counterstage [d, preset, toggle, nclr] =
  30.                jkff [and2 [ja, ea], and2 [ka, ea]]
  31.                where
  32.                   ja = nand [ka, preset];
  33.                   ka = nand3 [d, preset, nclr];
  34.                   ea = or [toggle, preset]
  35.                endwhere;
  36.       endwhere;
  37.